package cn.tedu.hotel.mapper;

import cn.tedu.hotel.pojo.dto.RoomListItemDTO;
import cn.tedu.hotel.pojo.entity.Category;
import cn.tedu.hotel.pojo.entity.Room;
import cn.tedu.hotel.pojo.vo.CategoryStandardVO;
import cn.tedu.hotel.pojo.vo.RoomListItemVO;
import cn.tedu.hotel.pojo.vo.RoomStandardVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 *  房间mapper接口
 */
@Repository
public interface RoomMapper {

    /**
     *  插入房间数据
     * @param room 房间数据
     * @return
     */
    int insert(Room room);

    /**
     *  根据id 删除房间数据
     * @param id 房间id
     * @return
     */
    int deleteById(Long id);

    /**
     *  根据id 批量删除房间
     * @param ids
     * @return
     */
    int deleteByIds(Long[] ids);

    /**
     *  根据房间id 修改房间数据
     * @param room 封装了id与新房间数据的对象
     * @return
     */
    int update(Room room);

    /**
     *  根据id统计表中房间数量
     * @param id 房间id
     * @return
     */
    int count(Long id);

    /**
     *  根据房间名称统计房间数量
     * @param name
     * @return
     */
    int countByName(String name);

    /**
     *  根据id获取房间详细信息
     * @param id
     * @return
     */
    RoomStandardVO getStandardById(Long id);

    /**
     *  根据房间id获取房间类型信息
     * @param roomId
     * @return
     */
    CategoryStandardVO getCategoryByRoomId(Long roomId);

    /**
     *  查询房间列表
     * @return
     */
    List<RoomListItemVO> listRoom();

    List<RoomListItemVO> listRooms(RoomListItemDTO roomListItemDTO);




}
